package com.example.springboot.controller;

/*
 * 功能：产品信息管理
 * 1.查询所有产品；
 * 2.单个插入产品认证任务；
 *
 * 日期：2024-3-28 20:12
 * 作者：RabbitQ
 */

import com.example.springboot.common.Result;
import com.example.springboot.entity.Product;
import com.example.springboot.service.ProdProgressService;
import com.example.springboot.service.ProductService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/product")
public class ProductController {

    @Resource
    ProductService productService;

    @Resource
    ProdProgressService prodProgressService;

    //查询所有产品——以json-List形式返回
    @GetMapping("/selectAll")
    public Result selectAll( ){
        List<Product> proList = productService.selectAll();
        return Result.success(proList);
    }

    //单个上传-添加产品-认证任务
    @PostMapping("/submitSingle")
    public Result submitSingle(@RequestBody Product product){
        productService.submitSingle(product);
        return Result.success();
    }


    //通过负责人和产品名称筛选
    @GetMapping("/selectByChargerProName")
    public Result selectByChargerStatus(@RequestParam(required = false) String charger,
                                        @RequestParam(required = false) String proName){
        List<Product> productList = productService.select_By_charger_proStatus(charger, proName);

        return Result.success(productList);
    }

    //编辑认证任务——首页
    @PostMapping("/updateByProductInfo")
    public Result updateByProductInfo(@RequestBody Product newProduct){

        //通过负责人和产品名称锁定需要编辑的产品认证任务
        productService.updateByProductInfo(newProduct);

        //获取更新后的全部数据
        return Result.success(productService.selectAll());
    }

    //删除/撤销认证任务——首页
    @PostMapping("/delByProductInfo")
    public Result delByProductInfo(@RequestBody Product newProduct){

        //通过负责人和产品名称锁定需要编辑的产品认证任务
        productService.delByProductInfo(newProduct);

        //获取更新后的全部数据
        return Result.success(productService.selectAll());
    }

    //第三方认证界面——获取需要第三方认证的数据
    @GetMapping("/selectThirdParty")
    public Result selectThirdParty(){
        //此处示范，获取ID值为偶数的数据
        List<Product> productThird = productService.selectEvenID();

        return Result.success(productThird);
    }
}
